package com.xinxin.o2o.dto;

import com.xinxin.o2o.enums.ProductStateEnum;
import com.xinxin.o2o.model.Product;
import lombok.Data;

import java.util.List;

/**
 * @author 史鑫鑫
 * @date 2019-08-20 22:50
 */
@Data
public class ProductExecution {
    /**
     * 结果状态
     */
    private int state;

    /**
     * 状态标识
     */
    private String stateInfo;

    /**
     * 店铺数量
     */
    private int count;

    /**
     * 操作的product（增删改商品的时候用）
     */
    private Product product;

    /**
     * 获取的product列表(查询商品列表的时候用)
     */
    private List<Product> productList;

    public ProductExecution() {
    }

    /**
     * 失败的构造器
     *
     * @param stateEnum 状态枚举
     */
    public ProductExecution(ProductStateEnum stateEnum) {
        this.state = stateEnum.getState();
        this.stateInfo = stateEnum.getStateInfo();
    }

    /**
     * 成功的构造器
     *
     * @param stateEnum 状态枚举
     * @param product   产品
     */
    public ProductExecution(ProductStateEnum stateEnum, Product product) {
        this.state = stateEnum.getState();
        this.stateInfo = stateEnum.getStateInfo();
        this.product = product;
    }

    /**
     * 成功的构造器
     *
     * @param stateEnum   状态枚举
     * @param productList 产品列表
     */
    public ProductExecution(ProductStateEnum stateEnum,
                            List<Product> productList) {
        this.state = stateEnum.getState();
        this.stateInfo = stateEnum.getStateInfo();
        this.productList = productList;
    }
}
